package com.mdb.open.trade.domain.dto.trade;


import com.mdb.bc.api.data.DataObjectBase;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;

/**
* 类描述：
*  融资发起申请Dto
*
* @author zheng
* @date 2019-07-02
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(value="WebLoanApplyDto", description="融资发起申请Dto")
public class WebLoanApplyDto extends DataObjectBase {

    private static final long serialVersionUID = 1L;

    /**
     * 融资档案编号
     */
    @ApiModelProperty(value = "融资档案编号")
    @Size(max = 64, message = "融资档案编号最长为{max}位")
    private String tradeFileNo;

    /**
     * 业务编号
     */
    @ApiModelProperty(value = "业务编号")
    @Size(max = 64, message = "业务编号最长为{max}位")
    private String businessNo;

    /**
     * 商户收款账号唯一标识
     */
    @ApiModelProperty(value = "商户收款账号唯一标识")
    @Size(max = 64, message = "商户收款账号唯一标识最长为{max}位")
    private String accUniqueNo;

    /**
     * 收款单位中文名称
     */
    @ApiModelProperty(value = "收款单位中文名称")
    @Size(max = 64, message = "收款单位中文名称最长为{max}位")
    private String accNameCn;

    /**
     * 收款单位英文名称
     */
    @ApiModelProperty(value = "收款单位英文名称")
    @Size(max = 60, message = "收款单位英文名称最多输入{max}位字符")
    @Pattern(regexp = "^[A-Za-z0-9/\\-?:().,'+ ]+$", message = "收款单位英文名称仅支持字母、数字及以下字符：/ - ? : ( ) . , ' + CrLf Space")
    private String accNameEn;

    /**
     * 收款单位地址英文
     */
    @ApiModelProperty(value = "收款单位地址英文")
    @Size(max = 66, message = "收款单位地址英文最多输入{max}位字符")
    @Pattern(regexp = "^[A-Za-z0-9/\\-?:().,'+ ]+$", message = "收款单位地址英文仅支持字母、数字及以下字符：/ - ? : ( ) . , ' + CrLf Space")
    private String addressEn;

    /**
     * 收款账号
     */
    @ApiModelProperty(value = "收款账号")
    @Pattern(regexp = "^[A-Za-z0-9/\\-?:().,'+ ]{1,34}$", message = "收款账号仅支持字母、数字及以下字符：/ - ? : ( ) . , ' + CrLf Space")
    @Size(max = 60, message = "收款账号最多输入{max}位字符")
    private String accNo;

    /**
     * swift code
     */
    @ApiModelProperty(value = "swift code")
    @Pattern(regexp = "^[A-Za-z0-9]{1,11}?$", message = "swift code仅支持字母、数字,且长度为11位以内")
    @Size(max = 11, message = "swift code最多输入{max}位字符")
    private String swiftCode;

}
